package com.songlanyun.modules.concerns.service;


import com.songlanyun.common.drive.IBaseService;
import com.songlanyun.common.utils.PageUtils;
import com.songlanyun.modules.concerns.entity.UserConcern;
import com.songlanyun.modules.concerns.model.ConcernDTO;
import com.songlanyun.modules.concerns.model.ConcernStatisticsVo;

import java.util.Map;

/**
 * 会员的关注表
 *
 * @author lubo
 * @email sunlightcs@gmail.com
 * @date 2021-01-12 10:07:49
 */
public interface UserConcernService extends IBaseService<Long, UserConcern> {

    /**
     * 我的粉丝列表
     * @param params
     * @return
     */
    PageUtils myConcernsPage(Map<String, Object> params);

    /**
     * 我的关注列表
     * @param params
     * @return
     */
    PageUtils myFansPage(Map<String, Object> params);

    /**
     * 关注其它会员
     * @param userId
     * @param dto
     * @return
     */
    UserConcern concern(Long userId,ConcernDTO dto);

    /**
     * 取消关注
     * @param userId
     * @param dto
     */
    void cancelConcern(Long userId,ConcernDTO dto);

    /**
     * 统计我关注的人数与我的粉丝人数
     * @param userId
     * @return
     */
    ConcernStatisticsVo statisticsPerson(Long userId);

    Integer countByConcernUserId(Long userId);

    Boolean isConcern(Long userId, Long publisherId);
}

